// 高阶函数(higher-order function)
// 用来处理函数的函数就是高阶函数

// 1、以函数为参数的函数
function operate(firstOperand, secondOperand, operation){
    if( typeof operation === 'function' ) {
        return operation(firstOperand, secondOperand);
    }
}

// 调用 operate 函数实现加法运算
let res = operate(10, 11, (a,b) => a + b );
console.log( res );

res = operate(10, 11, (a,b) => a - b );
console.log( res );

res = operate(10, 11, (a,b) => a ** b );
console.log( res );

// 2、以函数为返回值的函数
function count(x){
    // 用"函数表达式"定义函数(实际上就是将一个匿名函数作为值赋值给变量)
    let inner = function(y) {
        console.log( new Date() , x , y );
    }
    return inner;
}

let fn = count(250);
fn(10);
fn(20);

count(110)(120);
